TCP คืออะไร
Transmission Control Protocol หรือ TCP คืออะไร ? มันเป็น protocol ที่ใช้ใน Internet protocol suite ซึ่งเป็น model ของกลุ่ม protocol ที่นิยมใช้งานเป็นมาตราฐานใน internet ซึ่งประกอบไปด้วย
- TCP : transmission Control Protocol (Transport layer)
- IP : Internet Protocol (Network layer)
นิยมเรียกรวมกันว่า TCP/IP หน้าที่ของ TCP คือสร้างความแม่นยำ (rely) จัดเรียกลำดับ และ ตรวจสอบข้อผิดพลาด ในการส่งข้อมูลระหว่าง application ที่เชื่อมต่อกันด้วย IP network สำหรับ Internet application ส่วนใหญ่เช่น www, email, remote admin และการ transfer file ก็จะทำบน TCP แต่สำหรับ application ที่ไม่ต้องการความแม่นยำในการให้บริการจะใช้เป็น User Datagram Protocol (UDP)
ประวัติของ TCP
เริ่มต้นจากการประกาศของสถาบัน Institute of Electrical and Electronic Engineers (IEEE) ในช่วง พฤษภาคม 1987 โดยเขียนขึ้นโดย Vint Cerf และ Bob Kahn ได้อธิบายหลัการทำงานที่แบ่งทรัพยากรโดยอาศัยการทำ packet-switching ระหว่างอุปกรณ์ ซึ่งศูนย์กลางที่ทำหน้าที่ควบคุมก็คือ Transmission Control Program ภายหลังได้แบ่งออกมาเป็น module TCP ทำหน้าที่ในระดับ connection-oriented layer (Transaport layer) และ IP ทำหน้าที่ระดับ internetworking layer (Network layer) ในที่สุดจึงกลายมาเป็น TCP/IP
โครงสร้างของ packet TCP
ในส่วนของ TCP header จะประกอบไปด้วย
- Source port (16 bits)
- Destination port (16 bits)
- Sequence number (32 bits) ลำดับ packet ที่ส่ง
- Acknowledgment number (32 bits) เลขลำดับต่อไปที่ผู้ส่งต้องการ
- Data offset (4 bits) size ของ TCP header
- Reserved (3 bits)
- Flags (9 bits) บอกชนิดของ packet เช่น SYN,ACK,FIN,RST,PSH,URG
- Window size (16 bits)
- Checksum (16 bits)
- Urgent pointer (16 bits)
- Options (0–320 bits)
การทำงานของ TCP
แบ่งออกเป็น 3 ช่วงด้วยกัน คือ
- Establish: สร้าง connection
- Transfer: แลกเปลี่ยนข้อมูล
- Terminate: ปิด connection
TCP connection ถูกจัดการโดย OS ผ่านทาง programming ที่ทำงานเพื่อการสร้างและเชื่อมต่อไปยังปลายทาง (end-point) โดย connection จะมี state ดังนี้
- LISTEN: ฝั่ง server เปิด port รอ client เข้ามาเชื่อมต่อ
- SYN-SENT: เกิดที่ฝั่ง client รอการจับคู่ connection หลังจากส่ง request connectionไปยัง server
- SYN-RECEIVED: เกิดที่ฝัั่ง server รอการยืนยันการสร้าง connection หลักจากได้รับ request
- ESTABLISHED: ทั้ง 2 ฝั่งเชื่อมต่อกันเรียบร้อยแล้ว พร้อมที่จะแลกเปลี่ยนข้อมูล
- FIN-WAIT-1: รอการปิด connection หลังจากส่ง request ไปยังอีกฝั่งเพื่อ terminate
- FIN-WAIT-2: รอการปิด connection จากฝั่ง remote TCP
- CLOSE-WAIT: รอการปิด connection จาก local user
- CLOSING: รอ acknowledge การปิด connection จาก remote TCP
- LAST-ACK: รอ acknowledge การปิด connection ที่ส่งมาจาก remote TCP ก่อนหน้านี้
- TIME-WAIT: ระยะการรอปิด connection ช่วงเวลาหนึ่งเพื่อให้แน่ใจว่าอีกฝั่งได้รับ acknowledge แล้ว
- CLOSED: ทำการ terminate connection แล้ว
Reference
TCP คืออะไร โปรโตรคอลหลักบน internet หรือ TCP/IP ที่นิยมกัน
UDP คืออะไร โปรโตรคอลหนึ่งใน Internet protocol suite
TCP UDP ต่างกันอย่างไร ข้อดีข้อเสียของแต่ละ protocol
Author: Suphakit Annoppornchai
Credit: https://saixiii.com,https://en.wikipedia.org
[…] System Agent (DSA) ซึ่งปกติจะใช้ TCP port 389 สำหรับ LDAP over SSL จะเป็น port 636 โดยทาง client […]
[…] TCP คืออะไร โปรโตรคอลหลักบน internet หรือ TCP/IP… ซึ่งในชุด Internet protocol suite ยังมีอีก protocol […]
[…] TCP คืออะไร โปรโตรคอลหลักบน internet หรือ TCP/IP… […]
[…] email จาก mail server ผ่านทาง TCP/IP connection ซึ่ง POP ถูกพัฒนาขึ้นมาหลาย version […]
[…] client ทำหน้าดึง mail จากฝั่ง mail server ลงมาด้วย TCP/IP connection เช่นเดียวกับ POP3 โดย IMAP […]
[…] ภายในบริษัทที่ใช้งานสื่อสารกันบน TCP/IP ระหว่างเครื่องกันเอง […]
[…] และสือสารด้วยข้อมูล 8bit ผ่านทาง TCP/IP เราสามารถใช้คำสั่ง telnet เพื่อสร้าง […]